1. Technical Field
The present invention relates in general to a system and method for encrypting, decrypting, and verifying the integrity of messages. In particular, the present invention relates to a system and method for using a three-phase encryption process to encrypt, decrypt, and verify the integrity of a message.
2. Description of the Related Art
The Internet provides an efficient and inexpensive means of communication between large numbers of users. The same infrastructure can be shared among the different users; it is unnecessary for each pair of communicating users to establish a separate channel of communication as is the case, for example, with users of standard telephones and fax machines. The sharing of the channels of communication provided by the Internet significantly increases the probability of intercepted communication, eavesdropping, tampering with the messages, etc. Thus, it has become increasingly important to have available means of communication that provide an efficient way of securing the transmission of messages between a source and a target over shared channels of communication such as the Internet. The most common method of secured communication is to encrypt the message at the source in such a way that practically only the target can decrypt the message.
Many types of encryption/decryption have been developed to address the need for secured communications. There are two main types of encryption techniques: secret key encryption and private/public key encryption. In secret key encryption, the same secret key is used both for the encryption of the message at the source and the decryption of the message at the target. An example of secret key encryption is the Data Encryption Standard (DES). In public/private key encryption, each user has a private key (which is kept secret from the other users) and a public key (which each user publicly distributes). The two keys are mathematically related in such a way that a source uses the target's public key to encrypt a message such that practically only the target can decrypt the message.
A good encryption standard must be computationally efficient for the source and the target, and at the same time, the standard must be not be easy to “break” using cryptanalysis: the art and science of breaking encryption algorithm. It is also important for the encryption standard to provide means for verifying the integrity of a message-whether a message was altered during its transmission through an unsecured medium.
What is needed, therefore, is a system and method that could provide an efficient encryption/decryption standard between a source and a target while not being susceptible to cryptanalysis. The system and method should also provide the capability to verify the integrity of a transmitted message to a high degree of probability.